package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户对象 spff_users
 * 
 * @author xjj
 * @date 2025-09-11
 */
public class SpffUsers extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    private Long id;

    /** 用户名 */
    @Excel(name = "用户名")
    private String username;

    /** 密码 */
    @Excel(name = "密码")
    private String password;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 头像URL */
    @Excel(name = "头像URL")
    private String avatar;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 性别:0-未知,1-男,2-女 */
    @Excel(name = "性别:0-未知,1-男,2-女")
    private Integer gender;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 地理位置 */
    @Excel(name = "地理位置")
    private String location;

    /** 纬度 */
    @Excel(name = "纬度")
    private BigDecimal latitude;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal longitude;

    /** 个人简介 */
    @Excel(name = "个人简介")
    private String bio;

    /** 粉丝数 */
    @Excel(name = "粉丝数")
    private Long followerCount;

    /** 关注数 */
    @Excel(name = "关注数")
    private Long followingCount;

    /** 视频数 */
    @Excel(name = "视频数")
    private Long videoCount;

    /** 获赞数 */
    @Excel(name = "获赞数")
    private Long likeCount;

    /** 是否认证 */
    @Excel(name = "是否认证")
    private Integer isVerified;

    /** 状态:0-禁用,1-正常 */
    @Excel(name = "状态:0-禁用,1-正常")
    private Integer status;

    /** 最后登录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    /** $column.columnComment */
    private Date createdAt;

    /** $column.columnComment */
    private Date updatedAt;


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }

    public void setPassword(String password) 
    {
        this.password = password;
    }

    public String getPassword() 
    {
        return password;
    }

    public void setNickname(String nickname) 
    {
        this.nickname = nickname;
    }

    public String getNickname() 
    {
        return nickname;
    }

    public void setAvatar(String avatar) 
    {
        this.avatar = avatar;
    }

    public String getAvatar() 
    {
        return avatar;
    }

    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }

    public void setGender(Integer gender) 
    {
        this.gender = gender;
    }

    public Integer getGender() 
    {
        return gender;
    }

    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }

    public void setLocation(String location) 
    {
        this.location = location;
    }

    public String getLocation() 
    {
        return location;
    }

    public void setLatitude(BigDecimal latitude) 
    {
        this.latitude = latitude;
    }

    public BigDecimal getLatitude() 
    {
        return latitude;
    }

    public void setLongitude(BigDecimal longitude) 
    {
        this.longitude = longitude;
    }

    public BigDecimal getLongitude() 
    {
        return longitude;
    }

    public void setBio(String bio) 
    {
        this.bio = bio;
    }

    public String getBio() 
    {
        return bio;
    }

    public void setFollowerCount(Long followerCount) 
    {
        this.followerCount = followerCount;
    }

    public Long getFollowerCount() 
    {
        return followerCount;
    }

    public void setFollowingCount(Long followingCount) 
    {
        this.followingCount = followingCount;
    }

    public Long getFollowingCount() 
    {
        return followingCount;
    }

    public void setVideoCount(Long videoCount) 
    {
        this.videoCount = videoCount;
    }

    public Long getVideoCount() 
    {
        return videoCount;
    }

    public void setLikeCount(Long likeCount) 
    {
        this.likeCount = likeCount;
    }

    public Long getLikeCount() 
    {
        return likeCount;
    }

    public void setIsVerified(Integer isVerified) 
    {
        this.isVerified = isVerified;
    }

    public Integer getIsVerified() 
    {
        return isVerified;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setLastLoginTime(Date lastLoginTime) 
    {
        this.lastLoginTime = lastLoginTime;
    }

    public Date getLastLoginTime() 
    {
        return lastLoginTime;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("username", getUsername())
            .append("password", getPassword())
            .append("nickname", getNickname())
            .append("avatar", getAvatar())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("gender", getGender())
            .append("birthday", getBirthday())
            .append("location", getLocation())
            .append("latitude", getLatitude())
            .append("longitude", getLongitude())
            .append("bio", getBio())
            .append("followerCount", getFollowerCount())
            .append("followingCount", getFollowingCount())
            .append("videoCount", getVideoCount())
            .append("likeCount", getLikeCount())
            .append("isVerified", getIsVerified())
            .append("status", getStatus())
            .append("lastLoginTime", getLastLoginTime())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
